package com.lh.service;

import com.lh.model.File;
import com.lh.model.User;
import com.lh.util.MyException;

/**
 * @Author LuoHang
 * @Date 2022-05-08 19:55
 **/
public interface UserService {
    /**
     * getUserById
     * @param id id
     * @return User
     */
    User getUserById(Integer id);

    /**
     * login登录
     * @param user 当前登录请求用户
     * @return 用户
     */
    default User login(User user){ return null;}

    /**
     * 添加用户
     * @param user 用户对象
     * @return 是否成功添加
     */
    boolean addUser(User user);

    /**
     * 测试事务添加用户时候发生异常
     * @param user 用户对象
     * @return 是否添加成功
     * @throws MyException 异常
     */
    boolean addUserException(User user) throws MyException;

    /**
     * 联合事务测试
     * @param user 用户对象
     * @param file 文件对象
     * @return user
     * @throws MyException 自定义异常
     */
    User addUserAngImg(User user, File file) throws MyException;

    /**
     * deleteById
     * @param id id
     * @return int
     */
    int deleteById(Integer id);
}
